JavaScript 箭头函数
阐述
箭头函数是除了普通 JavaScript 函数之外的另一种定义函数的方式,具有简洁的语法,但语义与普通函数有所不同。
语法
箭头函数由参数部分、箭头 =>
和函数体三部分组成:
- 参数部分为一个括号中由逗号分开的零个、一个或多个参数;当参数数量为 1 时,也可以省略括号
- 函数体部分可以是一个 JavaScript 表达式,也可以是大括号包含的多个 JavaScript 语句
语义
大部分与 JavaScript 函数相同,不同之处见下。
实例
箭头函数经常用在给高阶函数传入函数参数的场景,可以使程序变得更简洁:
const sum = arr.reduce((a, b) => a + b);
const even = arr.filter((v) => v % 2 === 0);
const double = arr.map((v) => v * 2);
性质
相关内容
箭头函数与普通函数有多种不同点:
- 在函数内部没有绑定关于这个函数的
this
,arguments
和super
,因此也不能用于 JavaScritp 方法; - 不能用于 JavaScript 构造函数
箭头函数的词法作用域
由于箭头函数中用到的 this 本质上来自外层的闭包,所以它具有词法作用域:
const obj = {
birth: 1990,
getAge: function () {
var b = this.birth; // 1990
var fn = () => new Date().getFullYear() - this.birth; // this指向obj对象
return fn();
},
};
obj.getAge(); // 25
这里,this
正确地指向了 obj
。